package com.oyjd.beauty.business.user.service;

import java.util.Date;

import com.oyjd.beauty.bean.vo.UserVO;
import com.oyjd.beauty.fw.action.Page;
import com.oyjd.beauty.business.user.vo.UserExVO;

/**
 * 
 * 用户管理接口
 * 
 * @author <b>欧建东<br/>
 *         Email:oyjd@163.com</b>
 * @version 1.0
 */
public interface UserService {
	/**
	 * 查询用户列表
	 * 
	 * @param page
	 *            页面对象
	 * @return
	 */
	Page<UserExVO> getList(Page<UserExVO> page);

	/**
	 * 根据用户ID获取用户信息
	 * 
	 * @param userId
	 *            用户ID
	 * @return
	 */
	UserVO getUser(String userId);

	/**
	 * 根据帐号获取用户信息
	 * 
	 * @param account
	 * @return
	 */
	UserVO getUserByAccount(String account);

	/**
	 * 新增用户
	 * 
	 * @param roleId
	 *            角色
	 * @param account
	 *            帐号
	 * @param pwd
	 *            密码
	 * @param name
	 *            姓名
	 * @param sex
	 *            性别
	 * @param birthday
	 *            生日
	 * @param phone
	 *            电话
	 * @param email
	 *            电子邮件
	 * @param idcard
	 *            身份证
	 * @param user
	 *            当前用户
	 */
	void add(String roleId, String account, String pwd, String name, int sex, Date birthday, String phone, String email, String idcard, float height, float weight, float bust, float waistline, float hips, String user);

	/**
	 * 修改用户
	 * 
	 * @param userId
	 *            用户ID
	 * @param roleId
	 *            角色
	 * @param name
	 *            姓名
	 * @param sex
	 *            性别
	 * @param birthday
	 *            生日
	 * @param phone
	 *            电话
	 * @param email
	 *            电子邮件
	 * @param idcard
	 *            身份证
	 * @param user
	 *            当前用户
	 */
	void edit(String userId, String roleId, String name, int sex, Date birthday, String phone, String email, String idcard, float height, float weight, float bust, float waistline, float hips, String user);

	/**
	 * 管理员重置密码
	 * 
	 * @param userId
	 *            用户ID
	 * @param pwd
	 *            新密码
	 */
	void resetPwd(String userId, String pwd);

	/**
	 * 删除用户
	 * 
	 * @param ids
	 *            用户ID
	 */
	void remove(String[] ids);

	/**
	 * 修改个人资料
	 * 
	 * @param userId
	 *            用户ID
	 * @param name
	 *            姓名
	 * @param sex
	 *            性别
	 * @param birthday
	 *            生日
	 * @param phone
	 *            电话
	 * @param email
	 *            电子邮件
	 * @param idcard
	 *            身份证
	 * @param user
	 *            当前用户
	 */
	void personEdit(String userId, String name, int sex, Date birthday, String phone, String email, String idcard, float height, float weight, float bust, float waistline, float hips, String user);

	/**
	 * 修改个人密码
	 * 
	 * @param userId
	 *            用户ID
	 * @param oldPwd
	 *            旧密码
	 * @param newPwd
	 *            新密码
	 */
	boolean personResetPwd(String userId, String oldPwd, String newPwd);
}
